test:test.o
	gcc test.o -o test
print:
	echo "AAAAAAAAAAAAAA"
test.o:test.s
	gcc -c test.s -o test.o
test.s:test.i
	gcc -S test.i -o test.s
test.i:test.c
	gcc -E test.c -o test.i
# 一个目标的执行 类似于栈结构，如果对应的目标的依赖列表中的文件没有，那他就是把依赖方法入栈
# 然后往下找上一个目标的依赖文件 的目标 然后入栈 看看当前目录下有没有对一个这个目标的依赖文件 有的话执行
# 然后一个一个出栈


.PHONY:clean
clean:
	rm -f test.i test.s test.o test
